package com.up.interview.dataStructuresAndAlgorithms.offer;

/**
 * @author: liuchengjun
 * @title: OfferTest
 * @projectName: 海联技术中台V2.0
 * @depart 软件事业部
 * @description:
 * @date: 2025/10/29/周三 15:29 (星期三)
 * @since V2.0
 */
public class OfferTest {

    /**
     * 单例模式：私有构造器,对外提供
     *         提前创建好实例(按需创建) --  多线程下的线程不安全
     */
    public class Demo{
        private Demo demo;

        public Demo() {
        }

        public Demo getDemo() {
            if(demo == null){
                demo = new Demo();
            }
            return demo;
        }
    }

    /**
     * 多线程下的线程安全
     */
    public class Demo1{
        private Demo1 demo;

        public Demo1() {
        }

        public Demo1 getDemo() {
            if(demo == null){
                //避免单重if的重复加锁只在有冲突的
                synchronized (this) {
                    if(demo == null){
                        demo = new Demo1();
                    }
                }
            }
            return demo;
        }
    }
}
